package com.meowcook.service;

import com.meowcook.pojo.vo.UserDetailVO;
import com.meowcook.pojo.vo.UserPartIVO;
import org.springframework.transaction.annotation.Transactional;

/**
 * Created with Intellij IDEA.
 * Description:
 * User: 28792
 * Date: 2025-04-28
 * Time: 15:10
 */

public interface IUserService {

    /**
     * 注册
     * @param username 用户名
     * @param password 密码
     */
    void register(String username, String password);

    /**
     * 登录
     * @param username 用户名
     * @param password 密码
     * @return User
     */
    UserDetailVO login(String username, String password);

    /**
     * 更新用户登录状态
     * @param user 用户信息
     */
    void updateUserLoginStatus(UserDetailVO user);

    /**
     * 根据用户id获取部分用户信息
     * @param userId 用户id
     * @return UserPartIVO
     */
    UserPartIVO getPartUserInfo(Long userId);

    /**
     * 根据用户id获取用户详细信息
     * @param userId 用户id
     * @return UserDetailVO
     */
    UserDetailVO getDetailUserInfo(Long userId);

    /**
     * 修改密码
     * @param userId 用户id
     * @param newPassword 新密码
     */
    @Transactional
    void changePassword(Long userId, String newPassword);

    @Transactional
    void changeNickname(Long UserId, String newNickname);
}
